home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / pcboard / sarea021.zip / SICKAREA.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1996-04-06  |  5KB  |  408 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  INTEGER013
  33.     Integer  INTEGER014
  34.     Integer  INTEGER015
  35.     Integer  INTEGER016
  36.     String   STRING001
  37.     String   STRING002
  38.     String   STRING003
  39.     String   STRING004
  40.     String   STRING005
  41.     String   STRING006
  42.     String   TSTRING007(800)
  43.     String   TSTRING008(800)
  44.     String   STRING009
  45.     String   STRING010
  46.     String   STRING011
  47.     String   STRING012
  48.     String   STRING013
  49.     String   STRING014
  50.     String   STRING015
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     If (TokCount() > 0) Then
  55.         GetToken STRING009
  56.         Dir STRING009
  57.         End
  58.     Endif
  59.     Print "@X07@POFF@@CLS@"
  60.     FOpen 1, PPEPath() + "SICKAREA.CFG", 2, 0
  61.     FGet 1, STRING003
  62.     FGet 1, STRING004
  63.     FGet 1, STRING005
  64.     FGet 1, STRING012
  65.     FGet 1, STRING013
  66.     FGet 1, STRING009
  67.     FGet 1, INTEGER012
  68.     FGet 1, INTEGER008
  69.     FGet 1, INTEGER009
  70.     FGet 1, INTEGER004
  71.     FGet 1, INTEGER006
  72.     FGet 1, INTEGER005
  73.     FGet 1, STRING014
  74.     FGet 1, STRING015
  75.     FGet 1, INTEGER013
  76.     FGet 1, INTEGER015
  77.     FGet 1, INTEGER014
  78.     FGet 1, INTEGER016
  79.     FClose 1
  80.     INTEGER010 = 0
  81.     STRING011 = ""
  82.     INTEGER002 = 37
  83.     INTEGER011 = 0
  84.     BOOLEAN001 = 0
  85.     STRING001 = ReadLine(PCBDat(), 31)
  86.     STRING006 = "CNAMES file not found. You got not conferences??"
  87.     If (Exist(STRING001)) Then
  88.         STRING002 = ReadLine(STRING001, (CurConf() + 1) * 33 - 2)
  89.         STRING006 = "Couldnt find a directory listing for conference #@X0F" + String(CurConf()) + "@X04."
  90.         If (Exist(STRING002)) Then
  91.             STRING006 = ""
  92.             FOpen 1, STRING002, 2, 0
  93.             TSTRING007(0) = "Newest Uploads                     "
  94.             TSTRING008(0) = "U"
  95.             TSTRING007(1) = ""
  96.             FSeek 1, 60, 1
  97.             FRead 1, TSTRING007(1), 35
  98.             TSTRING008(1) = "1"
  99.             INTEGER001 = 1
  100.             INTEGER003 = 1
  101.             :LABEL001
  102.             If (Ferr(1)) Goto LABEL002
  103.             Inc INTEGER001
  104.             Inc INTEGER003
  105.             TSTRING007(INTEGER001) = ""
  106.             TSTRING008(INTEGER001) = ""
  107.             FSeek 1, 61, 1
  108.             FRead 1, TSTRING007(INTEGER001), 35
  109.             TSTRING008(INTEGER001) = String(INTEGER003)
  110.             If (Strip(TSTRING007(INTEGER001), " ") == "") Dec INTEGER001
  111.             Goto LABEL001
  112.             :LABEL002
  113.             FClose 1
  114.             TSTRING007(INTEGER001) = ""
  115.             TSTRING008(INTEGER001) = ""
  116.             TSTRING008(INTEGER001 + 1) = ""
  117.             INTEGER007 = INTEGER001 - 1
  118.             If (Exist(PPEPath() + "S-TOP.PCB")) DispFile PPEPath() + "S-TOP.PCB", 0
  119.             If (INTEGER009 == 0) INTEGER009 = GetY() + 1
  120.             Gosub LABEL017
  121.             FreshLine
  122.             If (Exist(PPEPath() + "S-BOT.PCB")) DispFile PPEPath() + "S-BOT.PCB", 0
  123.             Gosub LABEL015
  124.             :LABEL003
  125.             STRING010 = Upper(Inkey())
  126.             If (STRING010 == "") Goto LABEL003
  127.             If ((STRING010 == "UP") || (STRING010 == "W")) Then
  128.                 Gosub LABEL020
  129.                 If (INTEGER010 - 1 < 0) Then
  130.                     If (INTEGER010 + INTEGER011 - 1 >= 0) Then
  131.                         If (BOOLEAN001 == 1) Then
  132.                             Gosub LABEL014
  133.                             BOOLEAN001 = 0
  134.                             INTEGER011 = INTEGER011 - INTEGER012
  135.                             INTEGER010 = INTEGER012 - 1
  136.                             Gosub LABEL015
  137.                             Goto LABEL004
  138.                         Endif
  139.                         BOOLEAN001 = 0
  140.                         INTEGER011 = INTEGER011 - INTEGER012
  141.                         INTEGER010 = INTEGER012 - 1
  142.                         Gosub LABEL017
  143.                         Gosub LABEL015
  144.                     Endif
  145.                     :LABEL004
  146.                     Goto LABEL005
  147.                 Endif
  148.                 If (Strip(TSTRING007(INTEGER010 + INTEGER011 - 1), " ") <> "") Then
  149.                     Gosub LABEL014
  150.                     Dec INTEGER010
  151.                     Gosub LABEL015
  152.                 Endif
  153.                 :LABEL005
  154.                 Goto LABEL013
  155.             Endif
  156.             If ((STRING010 == "DOWN") || (STRING010 == "Z")) Then
  157.                 Gosub LABEL020
  158.                 If (INTEGER010 + 2 > INTEGER012) Then
  159.                     If (INTEGER007 >= INTEGER011 + INTEGER012) Then
  160.                         If (BOOLEAN001 == 0) Then
  161.                             Gosub LABEL014
  162.                             BOOLEAN001 = 1
  163.                             INTEGER011 = INTEGER011 + INTEGER012
  164.                             INTEGER010 = 0
  165.                             Gosub LABEL015
  166.                             Goto LABEL006
  167.                         Endif
  168.                         BOOLEAN001 = 0
  169.                         INTEGER011 = INTEGER011 + INTEGER012
  170.                         INTEGER010 = 0
  171.                         Gosub LABEL017
  172.                         Gosub LABEL015
  173.                     Endif
  174.                     :LABEL006
  175.                     Goto LABEL007
  176.                 Endif
  177.                 If (Strip(TSTRING007(INTEGER010 + INTEGER011 + 1), " ") <> "") Then
  178.                     Gosub LABEL014
  179.                     Inc INTEGER010
  180.                     Gosub LABEL015
  181.                 Endif
  182.                 :LABEL007
  183.                 Goto LABEL013
  184.             Endif
  185.             If ((STRING010 == "LEFT") || (STRING010 == "A")) Then
  186.                 Gosub LABEL020
  187.                 If (INTEGER011 - INTEGER012 >= 0) Then
  188.                     If (BOOLEAN001 == 1) Then
  189.                         Gosub LABEL014
  190.                         BOOLEAN001 = 0
  191.                         INTEGER011 = INTEGER011 - INTEGER012
  192.                         Gosub LABEL015
  193.                         Goto LABEL008
  194.                     Endif
  195.                     INTEGER011 = INTEGER011 - INTEGER012
  196.                     BOOLEAN001 = 0
  197.                     Gosub LABEL017
  198.                     Gosub LABEL015
  199.                     :LABEL008
  200.                     Goto LABEL009
  201.                 Endif
  202.                 Beep
  203.                 :LABEL009
  204.                 Goto LABEL013
  205.             Endif
  206.             If ((STRING010 == "RIGHT") || (STRING010 == "S")) Then
  207.                 Gosub LABEL020
  208.                 If (INTEGER007 >= INTEGER011 + INTEGER012) Then
  209.                     If (BOOLEAN001 == 0) Then
  210.                         Gosub LABEL014
  211.                         BOOLEAN001 = 1
  212.                         INTEGER011 = INTEGER011 + INTEGER012
  213.                         Gosub LABEL015
  214.                         Goto LABEL010
  215.                     Endif
  216.                     BOOLEAN001 = 0
  217.                     INTEGER011 = INTEGER011 + INTEGER012
  218.                     Gosub LABEL017
  219.                     Gosub LABEL015
  220.                     :LABEL010
  221.                     Goto LABEL011
  222.                 Endif
  223.                 Beep
  224.                 :LABEL011
  225.                 Goto LABEL013
  226.             Endif
  227.             If (((STRING010 >= "0") && (STRING010 <= "9")) || (STRING010 == "U")) Then
  228.                 Print STRING012
  229.                 If (GetX() + Len(STRING010) <= INTEGER004 + INTEGER005) Then
  230.                     Print STRING010
  231.                     STRING011 = STRING011 + STRING010
  232.                 Endif
  233.                 Goto LABEL013
  234.             Endif
  235.             If (STRING010 == Chr(8)) Then
  236.                 If (GetX() - 1 >= INTEGER004) Print Chr(8) + STRING013 + Chr(8)
  237.                 STRING011 = Mid(STRING011, 1, GetX() - INTEGER004)
  238.                 Goto LABEL013
  239.             Endif
  240.             If (STRING010 == Chr(13)) Then
  241.                 Print "@X07@PON@@CLS@"
  242.                 If (STRING011 <> "") Then
  243.                     Dir STRING011
  244.                     Goto LABEL012
  245.                 Endif
  246.                 If (INTEGER010 + INTEGER011 == 0) Then
  247.                     Dir "U"
  248.                     Goto LABEL012
  249.                 Endif
  250.                 Dir String(TSTRING008(INTEGER010 + INTEGER011))
  251.                 :LABEL012
  252.                 Goto LABEL021
  253.                 Goto LABEL013
  254.             Endif
  255.             If (STRING010 == Chr(27)) Then
  256.                 DefColor
  257.                 Cls
  258.                 Goto LABEL021
  259.             Endif
  260.             :LABEL013
  261.             Goto LABEL003
  262.             :LABEL014
  263.             AnsiPos INTEGER008, INTEGER009 + INTEGER010
  264.             If (BOOLEAN001) Forward INTEGER002
  265.             Print STRING004 + " " + Left(TSTRING007(INTEGER010 + INTEGER011), 30) + "@X07"
  266.             Return
  267.             :LABEL015
  268.             If (Strip(TSTRING007(INTEGER010 + INTEGER011), " ") == "") INTEGER010 = INTEGER007 - INTEGER011
  269.             AnsiPos INTEGER008, INTEGER009 + INTEGER010
  270.             If (BOOLEAN001) Forward INTEGER002
  271.             If (Upper(Left(STRING009, 1)) == "Y") Then
  272.                 Print STRING003 + " " + Upper(Left(TSTRING007(INTEGER010 + INTEGER011), 30)) + "@X07"
  273.                 Goto LABEL016
  274.             Endif
  275.             Print STRING003 + " " + Left(TSTRING007(INTEGER010 + INTEGER011), 30) + "@X07"
  276.             :LABEL016
  277.             AnsiPos INTEGER004 + Len(STRING011), INTEGER006
  278.             Return
  279.             :LABEL017
  280.             For INTEGER001 = INTEGER011 To INTEGER011 + INTEGER012 - 1
  281.                 AnsiPos INTEGER008 - 3, INTEGER009 + INTEGER001 - INTEGER011
  282.                 Print STRING005 + Right(TSTRING008(INTEGER001), 2) + " " + STRING004 + " " + Left(TSTRING007(INTEGER001), 30) + "@X07"
  283.             Next
  284.             For INTEGER001 = INTEGER011 + INTEGER012 To INTEGER011 + INTEGER012 * 2 - 1
  285.                 AnsiPos INTEGER008 + INTEGER002 - 3, INTEGER009 + INTEGER001 - INTEGER011 - INTEGER012
  286.                 Print STRING005 + Right(TSTRING008(INTEGER001), 2) + " " + STRING004 + " " + Left(TSTRING007(INTEGER001), 30) + "@X07"
  287.             Next
  288.             AnsiPos INTEGER013, INTEGER015
  289.             If (INTEGER011 > 1) Then
  290.                 Print STRING014
  291.                 Goto LABEL018
  292.             Endif
  293.             Print Space(Len(StripAtx(STRING014)))
  294.             :LABEL018
  295.             AnsiPos INTEGER014, INTEGER016
  296.             If (INTEGER011 + INTEGER012 * 2 - 1 < INTEGER007) Then
  297.                 Print STRING015
  298.                 Goto LABEL019
  299.             Endif
  300.             Print Space(Len(StripAtx(STRING015)))
  301.             :LABEL019
  302.             Return
  303.             :LABEL020
  304.             AnsiPos INTEGER004, INTEGER006
  305.             For INTEGER001 = 1 To Len(STRING011)
  306.                 Print STRING013
  307.             Next
  308.             Backup Len(STRING011)
  309.             STRING011 = ""
  310.             Return
  311.         Endif
  312.     Endif
  313.     :LABEL021
  314.     Print "@X07"
  315.     Cls
  316.     If (STRING006 <> "") Print "@X0CAn Error Occurred : @X04" + STRING006
  317.  
  318. ;------------------------------------------------------------------------------
  319. ;
  320. ; Usage report (before postprocessing)
  321. ;
  322. ; ■ Statements used :
  323. ;
  324. ;    1       End
  325. ;    2       Cls
  326. ;    61      Goto 
  327. ;    55      Let 
  328. ;    17      Print 
  329. ;    43      If 
  330. ;    2       DispFile 
  331. ;    2       FOpen 
  332. ;    2       FClose 
  333. ;    18      FGet 
  334. ;    1       DefColor
  335. ;    26      Gosub 
  336. ;    4       Return
  337. ;    3       Inc 
  338. ;    2       Dec 
  339. ;    1       GetToken 
  340. ;    2       Beep
  341. ;    4       Dir 
  342. ;    8       AnsiPos 
  343. ;    1       Backup 
  344. ;    2       Forward 
  345. ;    1       FreshLine
  346. ;    2       FSeek 
  347. ;    2       FRead 
  348. ;
  349. ;
  350. ; ■ Functions used :
  351. ;
  352. ;    4       *
  353. ;    69      +
  354. ;    25      -
  355. ;    22      ==
  356. ;    4       <>
  357. ;    5       <
  358. ;    5       <=
  359. ;    3       >
  360. ;    12      >=
  361. ;    33      !
  362. ;    7       &&
  363. ;    8       ||
  364. ;    7       Len(
  365. ;    3       Upper()
  366. ;    1       Mid()
  367. ;    6       Left()
  368. ;    2       Right()
  369. ;    2       Space()
  370. ;    1       Ferr()
  371. ;    5       Chr()
  372. ;    2       StripAtx()
  373. ;    4       Strip()
  374. ;    1       Inkey()
  375. ;    3       String()
  376. ;    2       CurConf()
  377. ;    1       PCBDat()
  378. ;    5       PPEPath()
  379. ;    2       ReadLine()
  380. ;    4       Exist()
  381. ;    3       GetX()
  382. ;    1       GetY()
  383. ;    1       TokCount()
  384. ;
  385. ;------------------------------------------------------------------------------
  386. ;
  387. ; Analysis flags : d
  388. ;
  389. ; d - Access PCBOARD.DAT ■ 2
  390. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  391. ;     for many PPE so they can find various informations on the system
  392. ;     (system paths, max number of lines in messages, ...) but it may also
  393. ;     be a way to gather vital informations.
  394. ;     ■ Search for : PCBDAT()
  395. ;
  396. ;------------------------------------------------------------------------------
  397. ;
  398. ; Postprocessing report
  399. ;
  400. ;    3       For/Next
  401. ;    0       While/EndWhile
  402. ;    29      If/Then or If/Then/Else
  403. ;    0       Select Case
  404. ;
  405. ;------------------------------------------------------------------------------
  406. ;                 AEGiS Corp - Break the routines, code against the machines!
  407. ;------------------------------------------------------------------------------
  408.